home *** CD-ROM | disk | FTP | other *** search
/ Softdisk Supreme / Softdisk Supreme.iso / pc / DSK Files / 0-49 / SD004b.dsk / RADAR.DEFENSE.bas < prev    next >
BASIC Source File  |  2003-06-12  |  8KB  |  174 lines

  1. 1000  REM 
  2. 1010  REM  *** RADAR DEFENSE ***
  3. 1020  REM 
  4. 1030  REM 
  5. 1040  GOTO 1060
  6. 1050  VTAB 24: HTAB 32: PRINT DE: VTAB 22: HTAB 32: PRINT E;"  ": RETURN 
  7. 1060  TEXT : HOME : HGR2 : TEXT 
  8. 1070  GOSUB 2220: PRINT  CHR$(4);"BLOAD RADAR.OBJ": GOSUB 2340
  9. 1080  DIM NL(60):LRM = 27:E = 20
  10. 1090  DIM NX(60): DIM NY(60): DIM RA(60): DIM DL(60)
  11. 1100  HCOLOR= 3
  12. 1110  PR# 0: IN# 0: POKE 54,0: POKE 55,96
  13. 1120 RA = 57.2955795
  14. 1130  FOR R = 15 TO 95  STEP 20
  15. 1140 X = 140:Y = 95
  16. 1150  IF R = 5  THEN S = 20
  17. 1160  IF R = 20  THEN S = 13
  18. 1170  IF R >20  THEN S = 10
  19. 1180  FOR A = 1 TO 360  STEP 10
  20. 1190 X1 =  SIN(A/RA) *R
  21. 1200 X1 = X1 +X
  22. 1210 Y1 =  COS(A/RA) *R
  23. 1220 Y1 = Y1 +Y
  24. 1230  HPLOT X1 +1,Y1 +1
  25. 1240  NEXT A
  26. 1250  NEXT R
  27. 1260  HPLOT 140,1 TO 140,188
  28. 1270  HPLOT 45,95 TO 235,95
  29. 1280  HTAB 20: VTAB 1: PRINT "180"
  30. 1290  HTAB 4: VTAB 13: PRINT "270"
  31. 1300  HTAB 36: VTAB 13: PRINT "90"
  32. 1310  HTAB 21: VTAB 24: PRINT "0"
  33. 1320  VTAB 1: HTAB 32: PRINT "MISSLES"
  34. 1330  VTAB 23: HTAB 30: PRINT "% DESTRUCT."
  35. 1340  VTAB 21: HTAB 32: PRINT "ENEMY "
  36. 1350  GOSUB 2420: PR# 0: IN# 0: POKE 54,0: POKE 55,96
  37. 1360  REM  MOVING ENEMY BOMBERS
  38. 1370  PRINT 
  39. 1380  FOR X = 1 TO 4
  40. 1390  IF X(X) < >0  THEN 1460
  41. 1400  IF E <4  THEN 1630
  42. 1410 A(X) =  RND(1) *360
  43. 1420 X(X) =  SIN(A(X)/RA) *95:X(X) = X(X) +140
  44. 1430 Y(X) =  COS(A(X)/RA) *95:Y(X) = Y(X) +95
  45. 1440  SCALE= 2: ROT= 0: XDRAW 1 AT X(X),Y(X)
  46. 1450  IF E <4  THEN X(X) = 1:Y(X) = 1:A(X) = 0:
  47. 1460  IF X(X) = 1  THEN EN(X) = 1: GOTO 1630
  48. 1470  ROT= 0: SCALE= 2: XDRAW 1 AT X(X),Y(X)
  49. 1480 SP = 2 +( RND(1) *DF): REM  SPEED OF ENEMY
  50. 1490 Z =  SIN(A(X)/RA) *SP:X(X) = X(X) -Z
  51. 1500 ZZ =  COS(A(X)/RA) *SP:Y(X) = Y(X) -ZZ
  52. 1510  XDRAW 1 AT X(X),Y(X)
  53. 1520 D1 = (X(X) -140) ^2:D2 = (Y(X) -95) ^2:D3 =  SQR(D1 +D2)
  54. 1530  IF D3 >15  THEN 1630
  55. 1540  IF D3 <15  THEN  VTAB 1: HTAB 1: PRINT "DANGER!!": FOR G = 1 TO 3:I = 120:J = 75: POKE 768,I: POKE 769,J: CALL 770:I = 140: POKE 768,I: POKE 769,J: CALL 770: VTAB 1: HTAB 1: PRINT "        "
  56. 1550  IF D3 <15  AND D3 >7  THEN DE = DE +2
  57. 1560  IF D3 >7  THEN 1620
  58. 1570  VTAB 1: HTAB 1: PRINT "DESTRUCTION"
  59. 1580  XDRAW 1 AT X(X),Y(X):X(X) = 0:E = E -1
  60. 1590  FOR G = 1 TO 5:I = 100:J = 10: POKE 768,I: POKE 769,J: CALL 770:I = 150: POKE 768,I: POKE 769,J: CALL 770: NEXT G:
  61. 1600  VTAB 1: HTAB 1: PRINT "           "
  62. 1610 DE = DE +10
  63. 1620  GOSUB 1050
  64. 1630  NEXT X: IF DE > = 100  THEN DE = 100: GOTO 1650
  65. 1640 J = 25:I = 70: POKE 768,I: POKE 769,J: CALL 770
  66. 1650  VTAB 2: HTAB 34: PRINT LRM;"  "
  67. 1660  VTAB 24: HTAB 32: PRINT DE
  68. 1670  VTAB 22: HTAB 32: PRINT E;" "
  69. 1680  IF E = 0  THEN 2060
  70. 1690  IF DE > = 100  THEN  GOSUB 2490: GOTO 2060
  71. 1700  IF  PEEK( -16384) <127  THEN  POKE  -16384,0: GOTO 1890
  72. 1710 NL = 1: GOTO 1720
  73. 1720  REM 
  74. 1730  FOR X = 1 TO 35
  75. 1740  IF NL(X) = 0  THEN  GOTO 1760
  76. 1750  GOTO 1870
  77. 1760 NL = NL -1: IF NL =  -1  THEN 1880
  78. 1770 LRM = LRM -1: IF LRM <0  THEN 2060
  79. 1780 AN$ = ""
  80. 1790  VTAB 24: HTAB 1: INPUT "DIR.?";A$:DL(X) =  VAL(A$)
  81. 1800  VTAB 24: HTAB 1: PRINT "              "
  82. 1810  VTAB 24: HTAB 1: INPUT "RANGE? ";AN$:RA(X) =  VAL(AN$):: VTAB 24: HTAB 1: PRINT "                ": IF RA(X) = 0  THEN 1810
  83. 1820  IF RA(X) >4.9  THEN 1790
  84. 1830 NL(X) = 99
  85. 1840 RA(X) = (RA(X) *20) -5
  86. 1850 NX(X) = 140:NY(X) = 95
  87. 1860  XDRAW 2 AT NX(X),NY(X):NL(X) = 99
  88. 1870  NEXT X
  89. 1880 X = 35
  90. 1890  REM  MOVING LRM
  91. 1900  FOR Y = 1 TO E: IF NL(Y) = 0  THEN 2040
  92. 1910  XDRAW 2 AT NX(Y),NY(Y)
  93. 1920 ZZ =  SIN(DL(Y)/RA) *8:NX = NX(Y):NX(Y) = NX(Y) +ZZ
  94. 1930 YY =  COS(DL(Y)/RA) *8:NY = NY(Y):NY(Y) = NY(Y) +YY
  95. 1940 RG = RA(Y):RA(Y) = RA(Y) - SQR((ZZ ^2) +(YY ^2)): IF RA(Y) <0  THEN ZZ =  SIN(DL(Y)/RA) *RG:NX(Y) = NX +ZZ:YY =  COS(DL(Y)/RA) *RG:NY(X) = NY +YY: XDRAW 2 AT NX(Y),NY(Y): XDRAW 2 AT NX(Y),NY(Y):NL(Y) = 0: GOTO 1970
  96. 1950  XDRAW 2 AT NX(Y),NY(Y)
  97. 1960  GOTO 2040
  98. 1970  FOR Z = 1 TO 4
  99. 1980  IF  ABS(X(Z) -NX(Y)) <6  THEN 2000
  100. 1990  GOTO 2030
  101. 2000  IF  ABS(Y(Z) -NY(Y)) >6  THEN 2030
  102. 2010  SCALE= 4: XDRAW 2 AT X(Z),Y(Z): POKE 768,100: POKE 769,100: CALL 770: XDRAW 2 AT X(Z),Y(Z): SCALE= 2: XDRAW 1 AT X(Z),Y(Z):X(Z) = 0:NL(Y) = 0
  103. 2020 E = E -1
  104. 2030  NEXT Z
  105. 2040  NEXT Y
  106. 2050  GOTO 1380
  107. 2060  REM  ENDING OF THE GAME
  108. 2070  HGR2 : VTAB 1: IF E <0  THEN E = 0
  109. 2080  PRINT "STATISTICS"
  110. 2090  PRINT "MISSLES";" DESTRUCTION";"   ";"ENEMY LEFT": HTAB 3: PRINT LRM;: HTAB 11: PRINT DE;"%";: HTAB 30: PRINT E
  111. 2100  PRINT : PRINT "*** DIFFICULTY FACTOR ";DF;" ***"
  112. 2110  VTAB 10: PRINT "YOUR PERFORMANCE IS...."
  113. 2120  IF DE > = 100  THEN  PRINT "AWFUL. A CITY OF 2,000,000 HAS PERISHED": GOTO 2320
  114. 2130  IF DE > = 50  THEN  PRINT "NOT GOOD.    ONE MILLION PEOPLE DIED    FROM THE NUCLEAR ATTACK.": GOTO 2320
  115. 2140  IF DE <50  AND DE < >0  THEN  PRINT "PRETTY GOOD. VERY FEW CASULTIES": GOTO 2320
  116. 2150  IF DE = 0  THEN  PRINT "TREMENDOUS. NONE PERISHED BECAUSE OF    YOUR FINE PERFORMANCE.  YOU WIN THE     MEDAL OF VALOR."
  117. 2160  GOTO 2320
  118. 2170  IF G >2  THEN I = 149
  119. 2180 J = 8: POKE 768,I: POKE 769,J: CALL 770: NEXT G: NEXT K: RETURN 
  120. 2190  FOR K = 1 TO 2:J = 25:I = 70: POKE 768,I: POKE 769,J: CALL 770: NEXT K: RETURN 
  121. 2200 J = 15:I = 50: FOR K = 1 TO 30: POKE 768,I: POKE 769,J: CALL 770: NEXT K: RETURN 
  122. 2210  FOR G = 1 TO 5:I = 120:J = 75: POKE 768,I: POKE 769,J: CALL 770:I = 140: POKE 768,I: POKE 769,J: CALL 770: NEXT G: RETURN 
  123. 2220  REM  SHAPES AND TONE GENERATOR
  124. 2230  POKE 232,168: POKE 233,97: POKE 25000,4: POKE 25001,0: POKE 25002,25: POKE 25003,0: POKE 25004,45: POKE 25005,0
  125. 2240  POKE 25025,40: POKE 25026,54: POKE 25027,63: POKE 25028,36: POKE 25029,5: POKE 25030,0:
  126. 2250  POKE 25045,164: POKE 25046,42: POKE 25047,221: POKE 25048,127: POKE 25049,49: POKE 25050,6: POKE 25051,0:
  127. 2260  POKE 770,173: POKE 771,48: POKE 772,192: POKE 773,136: POKE 774,208: POKE 775,5: POKE 776,206: POKE 777,1: POKE 778,3
  128. 2270  POKE 779,240: POKE 780,9: POKE 781,202: POKE 782,208: POKE 783,245: POKE 784,174: POKE 785,0: POKE 786,3: POKE 787,76: POKE 788,2: POKE 789,3: POKE 790,96: POKE 791,0: POKE 792,0:
  129. 2280  TEXT : HOME : INVERSE : HTAB 10: VTAB 8: PRINT "                   ": HTAB 10: VTAB 9: PRINT "   RADAR DEFENSE   ": HTAB 10: VTAB 10: PRINT "                   "
  130. 2290  VTAB 22: HTAB 10: PRINT "COPYRIGHT (C) 1980 ": VTAB 23: HTAB 10: PRINT " G.E. GONDERINGER  "
  131. 2300  NORMAL : RETURN 
  132. 2310  REM  ENDING
  133. 2320  VTAB 23: INPUT "WOULD YOU LIKE TO PLAY AGAIN? ";AN$: IF  LEFT$(AN$,1) = "Y"  THEN  HGR2 : CLEAR : GOTO 1080
  134. 2330  END 
  135. 2340  PR# 0: TEXT : HOME 
  136. 2350  INVERSE : PRINT "                                             I N S T R U C T I O N S                                                    ": NORMAL 
  137. 2360  PRINT "YOU ARE IN CHARGE OF A RADAR I.C.B.M.   STATION. IT IS YOUR JOB TO PROTECT YOUR CITY FROM THE ENEMY MISSLES."
  138. 2370  PRINT : PRINT "WHENEVER YOU WISH TO LAUNCH A MISSLE,   PRESS THE SPACE BAR. THE COMPUTER WILL  THEN ASK FOR 'DIR.?' FOR THE DIRECTION. LOOK AT THE ANGLES ON THE RADAR, THEY"
  139. 2380  PRINT "ARE 10 DEGREES APART, AND ENTER THE     ANGLE FOR THE DIRECTION."
  140. 2390  PRINT : PRINT "YOU MUST THEN ENTER THE RANGE."
  141. 2400  PRINT : PRINT "THE RANGE IS ILLUSTRATED BY THE         CONCENTRIC CIRCLES THAT STAND FOR TEN   MILES EACH. ENTER THE RANGE IN TERMS    OF MULTIPLES OF TEN..E.G. 2.5"
  142. 2410  RETURN 
  143. 2420  TEXT : PR# 0
  144. 2430  POKE 34,3: HOME : VTAB 5: PRINT "YOU WILL NOW HAVE TO ENTER  THE         DIFFICULTY FACTOR.  THE SPEED OF THE    ENEMY MISSLES IS A RANDOM NUMBER FROM   ONE TO THE MAXIMUM DIFFICULTY FACTOR."
  145. 2440  PRINT "THUS A HIGHER DIFFICULTY FACTOR WILL    MAKE THE ENEMY MISSLES MORE DIFFICULT   TO HIT.": PRINT : PRINT 
  146. 2450  FOR GEG = 1 TO 3: GOSUB 2190: NEXT 
  147. 2460  VTAB 21: PRINT : INPUT "DIFFICULTY FACTOR (6-14)";DF$
  148. 2470 DF =  VAL(DF$): IF DF <6  OR DF >14  THEN  CALL 770: GOTO 2460
  149. 2480  RETURN 
  150. 2490 H = 240
  151. 2500 K = 10
  152. 2510  FOR J = 1 TO 30
  153. 2520  FOR X = 1 TO 5
  154. 2530 H = H -1
  155. 2540  POKE 768,H: POKE 769,K: CALL 770
  156. 2550  POKE 768,50: POKE 769,9: CALL 770
  157. 2560  IF GEG = 1  THEN 2650
  158. 2570  NEXT : NEXT 
  159. 2580 A = 130:C = 50:E2 = 80:B = 10:D = 15:F = 20
  160. 2590 E2 = 200
  161. 2600  FOR J = 1 TO 20
  162. 2610  POKE 768,A: POKE 769,B: CALL 770
  163. 2620  POKE 768,C: POKE 769,D: CALL 770
  164. 2630  POKE 768,E2: POKE 769,F: CALL 770
  165. 2640 GEG = 1: GOTO 2530
  166. 2650  NEXT 
  167. 2660  RETURN 
  168. 2670  REM 
  169. 2680  REM 
  170. 2690  REM  COPYRIGHT (C) 1980
  171. 2700  REM  GERALD GONDERINGER
  172. 2710  REM  ST. BONIFACE
  173. 2720  REM  ELGIN NEBR. 68636
  174. 2730  REM